# -*- coding: utf-8 -*-
# 站点地图
import os, datetime
import sys

reload(sys)
sys.setdefaultencoding('utf-8')

host = 'https://company.ch.gongchang.com/'  # 手动设置域名
dir = os.popen('mkdir sitemap')  # 用于从一个命令打开一个管道,创建一个目录
path = 'sitemap/'  # 设置 sitemap.xml 文件存放的路径
lastmod = datetime.date.today()  # 设置当前时间


def add_file(j, f1, host, path):
    '''
    loc 数据存放地址
    lastmod  该条数据的最新数据跟新一次
    priority  指定链接相对于 其他链接的优先权比值，定于0.0-1.0 之间
    changefreq  该数据的跟新频率
    :param j:
    :param f1:
    :param host:
    :param path:
    :return:
    '''
    file_name = 'sitemap_%s.xml' % (j)  # url 条数
    f1.write(
        "\n<sitemap>\n<loc>%s%s%s</loc>\n<lastmod>%s</lastmod>\n<changefreq>always</changefreq>\n<priority>0.8</priority>\n</sitemap>" % (
            host, path, file_name, lastmod))
    f = open("%s%s" % (path,file_name),"a")
    f.write('<?xml version="1.0" encoding="utf-8"?>\n<urlset>')
    return f

# 判断总的url
c = 0
for i in open('urls.txt'):
    url = i.strip()
    if len(url) == 0:
        pass
    else:
        c += 1

print c
# 判断需要生成的sitemap 个数
file_num = c % 50000
if file_num == 0:
    file_num = c / 50000
    print '总共有%s 条url,生成 %sitemap 文件' % (c,file_num)
else:
    file_num = (c / 50000) + 1
    print '总共有%s 条url,生成 %sitemap 文件' % (c, file_num)

# 自动按5 万条url 生成站点地图
i = 0
j = 2
f = open('./%s/sitemap_1.xml' % (path),'w+')
f.write('<?xml version="1.0" encoding="utf-8"?>\n<urlset>')
f1 = open('%s/sitemapindex.xml' % (path), 'a')
f1.write('<?xml version="1.0" encoding="utf-8"?>\n<sitemapindex>')
f1.write("\n<sitemap>\n<loc>%s%s%s</loc>\n<lastmod>%s</lastmod>\n<changefreq>always</changefreq>\n<priority>0.8</priority>\n</sitemap>" % (
host, path, 'sitemap_1.xml', lastmod))
for url in open('urls.txt'):
    url = url.strip()
    i +=1
    if i ==50000 or j == 50000:
        f.write('\n</urlset>')
        f.close()
        i = 0
        f = add_file(j,f1,host ,path)
        j+=1
    f.write("\n<url>\n<loc>%s</loc>\n<lastmod>%s</lastmod>\n<changefreq>always</changefreq>\n<priority>0.8</priority>\n</url>" % (url, lastmod))

f.write('\n</urlset')
f1.write('\n<sitemapindex>')
f1.close()

